12
תגובות

המתודה REQUEST

פתח soogo ,
אם יש את המתודה REQUEST איזה סיבה יש לי להשתמש בשאר המתודות?

12 תשובות

avatar ענה shlomo120 ב 26 לאוגוסט 2012 #

אם אתה רוצה להיות יותר ספציפי ...

avatar ענה soogo ב 26 לאוגוסט 2012 #

באופן כללי למה לכתוב

$_POST['name'];
או
$_GET['name'];

כשאפשר תמיד לכתוב
$_REQUEST['name'];

avatar ענה razand ב 26 לאוגוסט 2012 #

לפי דעתי זה בגלל שזה פחות מאובטח
כי לדוגמה אתה עושה טופס כזה:

<?php
if(isset($_REQUEST['hide'])){
//$_REQUEST['hide'] its POST
}
?>

עכשיו מישהו יכול לשים לך משהו ב GET.
ובעצם לעקוב את הטופס.(לא שאי אפשר לשנות לפני השליחה אבל עדיין).
וגם ניראלי שהוא יותר איטי כי הוא צריך לחפש את המשתנה הזה גם בשני המקומות..

avatar ענה intval ב 26 לאוגוסט 2012 #

מהסיבה ש request לוקח את הנתונים משלושה מקורות שונים ורושם אחד מעל השני.
אם הסקריפט שלך מצפה לקחת איזה נתון מתוך טופס, מישהו יכול במקום זה לדחוף לך משהו לא מועיל לשורת הכתובת או לקוקיז. אם הסקריפט שלך לא יצפה לזה - אתה בבעיה.

כנ"ל גם ההיפך. אם הסקריפט שלך מסתמך על משהו בקוקיז ובמקום זה הוא מקבל את זה סתם מתוך טופס, בכוונה או בטעות - אתה שוב בבעייה. לדוגמה אם אתה שומר את האימייל של המשתמש בקוקי וגם יש לך טופס באתר עם שדה אימייל - תתחיל לך בלבלת נתונים.

avatar ענה soogo ב 26 לאוגוסט 2012 #

הבתם לי עכשיו סיבות למה בכלל לא להשתמש ב REQUEST

avatar ענה intval ב 26 לאוגוסט 2012 #

בדיוק :)

avatar ענה soogo ב 27 לאוגוסט 2012 #

אתם טוענים שבשום מקרה לא להשתמש ב REQUEST ?

avatar ענה razand ב 27 לאוגוסט 2012 #

שמע חייבים להיות מיקרים להשתמש בהם כי עם לא בישביל מה המציאו אותם?
אבל עם זה טופס פשוט או התחברות עדיף שלא.

avatar ענה KingYes ב 27 לאוגוסט 2012 #

לי יצא להשתמש בזה בטופס חיפוש...

avatar ענה intval ב 27 לאוגוסט 2012 #

הוא מיועד למקרים שבהם אתה לא יודע באיזה דרך יגיעו אליך הנתונים

avatar ענה soogo ב 27 לאוגוסט 2012 #

איך אני לא אדע אם אני זה יצרתי את הטופס ותמיד אפשר לבדוק

avatar ענה bnayal ב 28 לאוגוסט 2012 #

בכל שנותיי כמתכנת PHP לא מצאתי סיבה להשתמש ב $_REQUEST. אני חושב שאם המערכת מצפה לקבל מידע משני מקורות (GET או POST, בד"כ אין מקרים שקוקיז נכנס לתמונה בכלל) אז צריך לבדוק לפי סדר עדיפות מאיפה הגיע המידע ואז להשתמש בו, על שדה ספציפי.
לאחרונה נתקלתי במערכת נוראית שמשתמש ב _REQUEST בכל הקלט שלה. זה פשוט אסון.

בניה